package com.webermagem.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import org.hibernate.Session;
import org.primefaces.context.RequestContext;
import org.primefaces.event.FlowEvent;
import org.primefaces.event.SelectEvent;

import com.webermagem.DAO.DiagnosticoDAO;
import com.webermagem.DAO.IntervencaoDAO;
import com.webermagem.DAO.LeitoDAO;
import com.webermagem.DAO.PacienteDAO;
import com.webermagem.DAO.SintomaDAO;
import com.webermagem.constants.SintomaConstants;
import com.webermagem.model.Diagnostico;
import com.webermagem.model.DiagnosticoDataModel;
import com.webermagem.model.Impressao;
import com.webermagem.model.Intervencao;
import com.webermagem.model.IntervencaoDataModel;
import com.webermagem.model.Leito;
import com.webermagem.model.Paciente;
import com.webermagem.model.PacienteDataModel;
import com.webermagem.model.Sintoma;
import com.webermagem.model.UsuarioSessao;
import com.webermagem.util.SessionManager;

@ManagedBean
@SessionScoped
public class PacienteController {

	// Paciente
	private Paciente novoPaciente = new Paciente();
	
	// Paciente Leito
	private Paciente pacienteLeito = new Paciente();
	
	// Paciente Pesquisado
	private Paciente pacientePesq = new Paciente();
	private Paciente pacientePesqSelecionado = new Paciente();
	
	private PacienteDAO pacienteDao = new PacienteDAO();
	private SintomaDAO sintomaDao = new SintomaDAO();
	private LeitoDAO leitoDao = new LeitoDAO();

	//Gerenciar HE
	private PacienteDataModel pacienteDataModel;
	private List<Paciente> listaPaciente;

	// Diagnostico
	private Map<String, Long> mapSintomas;
	private DiagnosticoDAO diagnosticoDao = new DiagnosticoDAO();
	private DiagnosticoDataModel diagnosticoModel;
	private List<Diagnostico> listaDiagnosticos;
	private Diagnostico[] listaDiagnosticosSelecionados;
	private List<Long> listaSintomas;

	// Intervenções
	private IntervencaoDAO intervencaoDao = new IntervencaoDAO();
	private IntervencaoDataModel intervencaoModel;
	private List<Intervencao> listaIntervencao;
	private Intervencao[] listaIntervencaoSelecionados;

	// Evolução Enfermagem
	private List<Sintoma> listaSintomaEvolucao = new ArrayList<Sintoma>();
	private List<Diagnostico> listaDiagEvolucao = new ArrayList<Diagnostico>(); 
	private List<Intervencao> listaIntervencaoEvolucao = new ArrayList<Intervencao>(); 

	// IMPRESSÃO
	private boolean isPaginado = false;
	private ArrayList<Impressao> imprs = new ArrayList<Impressao>(); 
	private Impressao impr = new Impressao();
	private UsuarioSessao usuario;

	public PacienteController() {
		if (mapSintomas == null) {
			carregarMapSintomas();
		}
	}

	// GERENCIAR HE
	
	public void onRowSelect(SelectEvent event) {

		pacientePesqSelecionado = (Paciente)(pacienteDataModel.getRowData());

	}

	public void redireciona(){

		FacesContext facesContext = FacesContext.getCurrentInstance();

		try {

			UsuarioSessao usuario = (UsuarioSessao)SessionManager.getSessionAttribute(facesContext, "usuarioSessao");

			if (usuario.getAuthority().equals("ROLE_ADMIN") || usuario.getAuthority().equals("ROLE_ENF")){
				
				FacesContext.getCurrentInstance().getExternalContext().redirect("/utineonatal/ui/formCriarPacientes.xhtml");  
				return;  
				
			}else if (usuario.getAuthority().equals("ROLE_TEC")){
				
				Paciente paciente = (Paciente)SessionManager.getSessionAttribute(facesContext, "paciente");
				
				if (paciente == null) {
					SessionManager.setSessionAttribute(facesContext, "paciente", pacientePesqSelecionado);
				}
				
				FacesContext.getCurrentInstance().getExternalContext().redirect("/utineonatal/ui/finalizacao.xhtml");
				return;
				
			}

		} catch (IOException ex) {  
			ex.printStackTrace();  
		}  

	}
	
	public void pesquisarPaciente(ActionEvent actionEvent){
		
		RequestContext context = RequestContext.getCurrentInstance();
		
		context.addCallbackParam("pacientePesq", pacientePesq);
		
	}
	
	// ADICIONAR PACIENTE

	public boolean adicionarPaciente(){

		boolean sucess = true;

		FacesContext facesContext = FacesContext.getCurrentInstance();

		Integer idLeito = (Integer)SessionManager.getSessionAttribute(facesContext, "leito");
		
		Leito leitoAux = null;
		
		try {

			if (idLeito != null) {
				
				leitoAux = (Leito)leitoDao.getByID((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), idLeito, new Leito());
				
			}
			
			novoPaciente.getPacienteSintoma().setPaciente(novoPaciente);

			pacienteDao.save((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), novoPaciente);

			if (leitoAux != null) {
				
				leitoAux.setPaciente(novoPaciente);
				
				leitoDao.update((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), leitoAux);
				
			}

			facesContext.addMessage(null, new FacesMessage("Sucesso", "Paciente adicionado com Sucesso!"));

			mapearSintomas(novoPaciente);

		} catch (Exception e) {

			facesContext.addMessage(null, new FacesMessage("Erro: ", "Por favor, entre em contato com o suporte :" + e.getMessage()));

			sucess = false;

			e.printStackTrace();

		}

		return sucess;

	}

	public String onFlowProcess(FlowEvent event) {

		String eventProx = event.getNewStep();

		if (event.getOldStep().equals("tabSintoma9") && eventProx.equals("tabSintoma10")) {

			if (!adicionarPaciente()) {

				eventProx = event.getOldStep();

			}

		}

		if (event.getOldStep().equals("tabSintoma10") && eventProx.equals("tabSintoma11")) {

			if (!adicionarDiagnostico()) {

				eventProx = event.getOldStep();

			}

		}

		if (event.getOldStep().equals("tabSintoma11") && eventProx.equals("tabSintoma12")) {

			if (!gerarEvolucaoEnfermagem()) {

				eventProx = event.getOldStep();

			}

		}

		return eventProx;

	}

	// EVOLUCAO ENFERMAGEM

	private boolean gerarEvolucaoEnfermagem() {

		boolean sucess = true;

		FacesContext facesContext = FacesContext.getCurrentInstance();

		RequestContext context = RequestContext.getCurrentInstance();
		
		try {

			// TODO VERIFICAR QUANTIDADE INTERVENCOES
			if (listaIntervencaoSelecionados != null && listaIntervencaoSelecionados.length > 0) {

				novoPaciente.setListaIntervencoes(Arrays.asList(listaIntervencaoSelecionados));

				pacienteDao.save((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), novoPaciente);

				context.update("form:growl4");
				
				facesContext.addMessage(null, new FacesMessage("Sucesso", "Intervenções adicionada(s) com Sucesso!"));

			}

			listaSintomaEvolucao = sintomaDao.listById((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), listaSintomas);

			listaDiagEvolucao = novoPaciente.getListaDiagnosticos();

			listaIntervencaoEvolucao = novoPaciente.getListaIntervencoes();
			
			SessionManager.setSessionAttribute(facesContext, "paciente", novoPaciente);

			SessionManager.setSessionAttribute(facesContext, "listaSintoma", listaSintomaEvolucao);

			SessionManager.setSessionAttribute(facesContext, "listaDiagnostico", listaDiagEvolucao);

			SessionManager.setSessionAttribute(facesContext, "listaIntervencao", listaIntervencaoEvolucao);

		} catch (Exception e) {

			context.update("form:growl3");
			
			facesContext.addMessage(null, new FacesMessage("Erro: ", "Por favor, entre em contato com o suporte :" + e.getMessage()));

			sucess = false;

			e.printStackTrace();

		}

		return sucess;

	}

	// DIAGNOSTICOS

	// ADICIONAR DIAGNOSTICO

	public boolean adicionarDiagnostico(){

		boolean sucess = true;

		FacesContext facesContext = FacesContext.getCurrentInstance();
		
		RequestContext context = RequestContext.getCurrentInstance();
		
		try {

			if (listaDiagnosticosSelecionados != null) {

				if (listaDiagnosticosSelecionados.length == 0) {

					context.update("form:growl2");
					
					facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro:", "Por favor, selecione algum diagnóstico!"));

					sucess = false;

				} else if (listaDiagnosticosSelecionados.length > 5) {

					context.update("form:growl2");
					
					facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro:", "Por favor, selecione apenas 5 diagnósticos!"));

					sucess = false;

				} else {

					context.update("form:growl3");
					
					novoPaciente.setListaDiagnosticos(Arrays.asList(listaDiagnosticosSelecionados));

					pacienteDao.save((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), novoPaciente);

					facesContext.addMessage(null, new FacesMessage("Sucesso", "Diagnósticos adicionado(s) com Sucesso!"));

				}

			}

		} catch (Exception e) {

			context.update("form:growl2");
			
			facesContext.addMessage(null, new FacesMessage("Erro: ", "Por favor, entre em contato com o suporte :" + e.getMessage()));

			sucess = false;

			e.printStackTrace();

		}

		return sucess;

	}

	// CARREGAR MAP SINTOMAS
	public void carregarMapSintomas() {
		FacesContext facesContext = FacesContext.getCurrentInstance();  
		setMapSintomas(sintomaDao.map((Session)SessionManager.getSessionAttribute(facesContext, "transacao")));
	}

	// MAPEAR SINTOMAS
	public void mapearSintomas(Paciente paciente) {

		listaSintomas = new ArrayList<Long>();

		// 1
		if (paciente.getPacienteSintoma().isIncubadoraAquecida()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.INCUBADORA_AQUECIDA));
		}

		// 2
		if (paciente.getPacienteSintoma().isBercoAquecido()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.BERCO_AQUECIDO));
		}

		// 3
		if (paciente.getPacienteSintoma().isHiportemia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.HIPOTERMIA));
		}

		// 4
		if (paciente.getPacienteSintoma().isHipertemia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.HIPERTERMIA));
		}

		// 5
		if (paciente.getPacienteSintoma().isNormotermia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.NORMOTERMIA));
		}

		// 6
		if (paciente.getPacienteSintoma().isAscultaRespiratoria()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AUSCULTA_RESPIRATORIA_MV_S_RA_AHT_NORMAIS));
		}

		// 7
		if (paciente.getPacienteSintoma().isMvMais()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MV_MAIS_C_RA_HTD));
		}

		// 8
		if (paciente.getPacienteSintoma().isHte()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.HTE));
		}

		// 9
		if (paciente.getPacienteSintoma().isRoncos()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.RONCOS));
		}

		// 10
		if (paciente.getPacienteSintoma().isSibilos()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SIBILOS));
		}

		// 11
		if (paciente.getPacienteSintoma().isEstertores()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ESTERTORES));
		}

		// 12
		if (paciente.getPacienteSintoma().isMvMenos()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MV_MENOS));
		}

		// 13
		if (paciente.getPacienteSintoma().isHt()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.HT_VALORADO));
		}

		// 14
		if (paciente.getPacienteSintoma().isMvAusente()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MV_AUSENTE));
		}

		// 15
		if (paciente.getPacienteSintoma().isRespEspontanea()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_ESPONTANEA));
		}

		// 16
		if (paciente.getPacienteSintoma().isRespArtificial()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_ARTIFICIAL));
		}

		// 17
		if (paciente.getPacienteSintoma().isRespEupneico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_EUPNEICO));
		}

		// 18
		if (paciente.getPacienteSintoma().isRespDispneico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_DISPNEICO));
		}

		// 19
		if (paciente.getPacienteSintoma().isRespApneico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_APNEICO));
		}

		// 20
		if (paciente.getPacienteSintoma().isRespPausaRespiratorio()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_PAUSA_RESPIRATORIA));
		}

		// 21
		if (paciente.getPacienteSintoma().isRespTaquipneico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_TAQUIPNEICO));
		}

		// 22
		if (paciente.getPacienteSintoma().isRespTaquidispneico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_TAQUIDISPNEICO));
		}

		// 23
		if (paciente.getPacienteSintoma().isBradipneico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_BRADIPNEICO));
		}

		// 24
		if (paciente.getPacienteSintoma().isBAN()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_BAN));
		}

		// 25
		if (paciente.getPacienteSintoma().isTiragemSubcostal()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_TIRAGEM_SUBCOSTAL));
		}

		// 26
		if (paciente.getPacienteSintoma().isTiragemIntercostal()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_TIRAGEM_INTERCOSTAL));
		}

		// 27
		if (paciente.getPacienteSintoma().isTiragemEsternal()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_TIRAGEM_ESTERNAL));
		}

		// 28
		if (paciente.getPacienteSintoma().isRespiracaoIrregular()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_RESPIRACAO_IRREGULAR));
		}

		// 29
		if (paciente.getPacienteSintoma().isRespiracaoPeriodica()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_RESPIRACAO_PERIODICA));
		}

		// 30
		if (paciente.getPacienteSintoma().isGemidoExpiratorio()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_GEMIDO_EXPIRATORIO));
		}

		// 31
		if (paciente.getPacienteSintoma().isCianose()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_CIANOSE));
		}

		// 32
		if (paciente.getPacienteSintoma().isSangramento()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_RESPIRACAO_SANGRAMENTO));
		}

		// 33
		if (paciente.getPacienteSintoma().isSuplementacaoNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SUPLEMENTACAO_DE_O2_NAO));
		}

		// 34
		if (paciente.getPacienteSintoma().isSuplementacaoSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SUPLEMENTACAO_DE_O2_SIM));
		}

		// 35
		if (paciente.getPacienteSintoma().isCateterNasal()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MODALIDADE_CATETER_NASAL));
		}

		// 36
		if (paciente.getPacienteSintoma().isCpapNasal()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MODALIDADE_CPAP_NASAL));
		}

		// 37
		if (paciente.getPacienteSintoma().isHalloNasal()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MODALIDADE_HALLO));
		}

		// 38
		if (paciente.getPacienteSintoma().isVentilacaoMecanica()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MODALIDADE_VENTILACAO_MECANICA));
		}

		// 39
		if (paciente.getPacienteSintoma().isAspiracaoNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ASPIRACAO_DE_SECRECOES_NAO));
		}

		// 40
		if (paciente.getPacienteSintoma().isAspiracaoSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ASPIRACAO_DE_SECRECOES_SIM));
		}

		// 41
		if (paciente.getPacienteSintoma().isViasAereasSuperioresCaract()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ASPIRACAO_DE_SECRECOES_VIAS_AEREAS_SUPERIORES));
		}

		// 42
		if (paciente.getPacienteSintoma().isViasAereasInferioresCaract()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ASPIRACAO_DE_SECRECOES_VIAS_AEREAS_INFERIORES));
		}

		// 43
		if (paciente.getPacienteSintoma().isRedeVenosaPreservada()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REDE_VENOSA_PRESERVADA));
		}

		// 44
		if (paciente.getPacienteSintoma().isRedeVenosaPrejudicada()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REDE_VENOSA_PREJUDICADA));
		}

		// 45
		if (paciente.getPacienteSintoma().isPerfusaoSanguineaVenosaPreservada()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PERFUSAO_SANGUINEA_VENOSA_PRESERVADA));
		}

		// 46
		if (paciente.getPacienteSintoma().isPerfusaoSanguineaVenosaPrejudicada()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PERFUSAO_SANGUINEA_VENOSA_PREJUDICADA));
		}

		// 47
		if (paciente.getPacienteSintoma().isAcessoVenosoNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ACESO_VENOSO_NAO));
		}

		// 48
		if (paciente.getPacienteSintoma().isAcessoVenosoSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ACESO_VENOSO_SIM));
		}

		// 49
		if (paciente.getPacienteSintoma().isAcessoVenosoPeriferico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ACESO_VENOSO_PERIFERICO));
		}

		// 50
		if (paciente.getPacienteSintoma().isAcessoVenosoCentral()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ACESO_VENOSO_CENTRAL));
		}

		// 51
		if (paciente.getPacienteSintoma().isPresencaDeSinaisFlogisticos()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PRESENCA_DE_SINAIS_FLOGISTICOS));
		}

		// 52
		if (paciente.getPacienteSintoma().isAscultaCardiacaBcnf()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AUSCULTA_CARDIACA_BCNF));
		}

		// 53
		if (paciente.getPacienteSintoma().isBcHiperFoneticas()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AUSCULTA_CARDIACA_BC_HIPERFONETICAS));
		}

		// 54
		if (paciente.getPacienteSintoma().isBcHipoFoneticas()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AUSCULTA_CARDIACA_BC_HIPOFONETICAS));
		}

		// 55
		if (paciente.getPacienteSintoma().isNormocardico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AUSCULTA_CARDIACA_NORMOCARDICO));
		}

		// 56
		if (paciente.getPacienteSintoma().isTaquicardico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AUSCULTA_CARDIACA_TAQUICARDICO));
		}

		// 57
		if (paciente.getPacienteSintoma().isBradicardico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AUSCULTA_CARDIACA_BRADICARDICO));
		}

		// 58
		if (paciente.getPacienteSintoma().isRitmoCardRegular()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.RITMO_CARDIACO_REGULAR));
		}

		// 59
		if (paciente.getPacienteSintoma().isRitmoCardIrregular()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.RITMO_CARDIACO_IRREGULAR));
		}		

		// 60
		if (paciente.getPacienteSintoma().isPerdasInsensiveisFototerapia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PERDAS_INSENSIVEIS_FOTOTERAPIA));
		}		

		// 61
		if (paciente.getPacienteSintoma().isPerdasInsensiveisHipertemia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PERDAS_INSENSIVEIS_HIPERTERMIA));
		}

		// 62
		if (paciente.getPacienteSintoma().isPerdasInsensiveisTaquipneica()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PERDAS_INSENSIVEIS_TAQUIPNEIA));
		}	

		// 63
		if (paciente.getPacienteSintoma().isFontanelasBregmaticaNormotensa()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.FONTANELAS_BREGMATICA_NORMOTENSA));
		}

		// 64
		if (paciente.getPacienteSintoma().isFontanelasBregmaticaCaractDeprimida()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.FONTANELAS_BREGMATICA_NORMOTENSA_DEPRIMIDA));
		}

		// 65
		if (paciente.getPacienteSintoma().isFontanelasBregmaticaCaractAbaulada()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.FONTANELAS_BREGMATICA_NORMOTENSA_ABAULADA));
		}			

		// 66
		if (paciente.getPacienteSintoma().isFontanelasBregmaticaCaractLambdoide()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.FONTANELAS_BREGMATICA_NORMOTENSA_LAMBDOIDE));
		}	

		// 67
		if (paciente.getPacienteSintoma().isFontanelasBregmaticaCaractAusente()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.FONTANELAS_BREGMATICA_NORMOTENSA_AUSENTE));
		}	

		// 68
		if (paciente.getPacienteSintoma().isFontanelasBregmaticaCaractPresente()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.FONTANELAS_BREGMATICA_NORMOTENSA_PRESENTE));
		}	

		// 69
		if (paciente.getPacienteSintoma().isSaliva()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SALIVA));
		}	

		// 70
		if (paciente.getPacienteSintoma().isDrenagemSog()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DRENAGEM_DE_SOG));
		}

		// 71
		if (paciente.getPacienteSintoma().isTurgorPeleSatisfatorio()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TURGOR_DA_PELE_SATISFATORIO));
		}

		// 72
		if (paciente.getPacienteSintoma().isTurgorPeleDiminuido()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TURGOR_DA_PELE_DIMINUIDO));
		}

		// 73
		if (paciente.getPacienteSintoma().isDietaNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIETA_NAO));
		}

		// 74
		if (paciente.getPacienteSintoma().isDietaSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIETA_SIM));
		}

		// 75
		if (paciente.getPacienteSintoma().isDietaViaOral()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIETA_VIA_ORAL));
		}

		// 76
		if (paciente.getPacienteSintoma().isDietaViaEnteral()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIETA_VIA_ENTERAL));
		}

		// 77
		if (paciente.getPacienteSintoma().isDietaViaParental()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIETA_VIA_PARENTERAL));
		}

		// 78
		if (paciente.getPacienteSintoma().isDietaSog()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIETA_SOG));
		}

		// 79
		if (paciente.getPacienteSintoma().isDietaGastromia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIETA_GASTROSTOMIA));
		}

		// 80
		if (paciente.getPacienteSintoma().isResiduoGastricoNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.RESIDUO_GASTRICO_NAO));
		}

		// 81
		if (paciente.getPacienteSintoma().isResiduoGastricoSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.RESIDUO_GASTRICO_SIM));
		}

		// 82
		if (paciente.getPacienteSintoma().isRegugirtacaoNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REGURGITACAO_NAO));
		}

		// 83
		if (paciente.getPacienteSintoma().isRegugirtacaoSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REGURGITACAO_SIM));
		}

		// 84
		if (paciente.getPacienteSintoma().isBroncoaspiracaoNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.BRONCOASPIRACAO_NAO));
		}

		// 85
		if (paciente.getPacienteSintoma().isBroncoaspiracaoSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.BRONCOASPIRACAO_SIM));
		}

		// 86
		if (paciente.getPacienteSintoma().isTipoLeiteMaternoOrdenhado()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_LEITE_MATERNO_ORDENHADO));
		}

		// 87
		if (paciente.getPacienteSintoma().isTipoLeiteMaternoPasteurizado()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_LEITE_MATERNO_PASTEURIZADO));
		}

		// 88
		if (paciente.getPacienteSintoma().isTipoLeiteArtificial()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.TIPO_DE_LEITE_LEITE_ARTIFICIAL));
		}

		// 89
		if (paciente.getPacienteSintoma().isReflexaoSuccaoNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REFLEXO_DE_SUCCAO_NAO));
		}

		// 90
		if (paciente.getPacienteSintoma().isReflexaoSuccaoSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REFLEXO_DE_SUCCAO_SIM));
		}

		// 91
		if (paciente.getPacienteSintoma().isReflexaoDegluticaoNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REFLEXO_DE_DEGLUTICAO_NAO));
		}

		// 92
		if (paciente.getPacienteSintoma().isReflexaoDegluticaoSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REFLEXO_DE_DEGLUTICAO_SIM));
		}

		// 93
		if (paciente.getPacienteSintoma().isGenitoraOrientadaNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AMAMENTACAO_GENITORA_ORIENTADA_NAO));
		}

		// 94
		if (paciente.getPacienteSintoma().isGenitoraOrientadaSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.AMAMENTACAO_GENITORA_ORIENTADA_SIM));
		}		

		// 95
		if (paciente.getPacienteSintoma().isPresencaLeiteSuficienteNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PRESENCA_DE_LEITE_SUFICIENTE_NAO));
		}

		// 96
		if (paciente.getPacienteSintoma().isPresencaLeiteSuficienteSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PRESENCA_DE_LEITE_SUFICIENTE_SIM));
		}

		// 97
		if (paciente.getPacienteSintoma().isCaractAbdomeFlacido()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DO_ABDOME_FLACIDO));
		}

		// 98
		if (paciente.getPacienteSintoma().isCaractAbdomeGloboso()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DO_ABDOME_GLOBOSO));
		}

		// 99
		if (paciente.getPacienteSintoma().isCaractAbdomeSemiGloboso()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DO_ABDOME_SEMI_GLOBOSO));
		}

		// 100
		if (paciente.getPacienteSintoma().isCaractAbdomeTenso()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DO_ABDOME_TENSO));
		}

		// 101
		if (paciente.getPacienteSintoma().isCaractAbdomeDor()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DO_ABDOME_DOR));
		}

		// 102
		if (paciente.getPacienteSintoma().isCaractAbdomePresencaOstomias()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DO_ABDOME_PRESENCA_DE_OSTOMIAS));
		}

		// 103
		if (paciente.getPacienteSintoma().isAlcasIntestinaisNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ALCAS_INTESTINAIS_VISIVEIS_NAO));
		}

		// 104
		if (paciente.getPacienteSintoma().isAlcasIntestinaisSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ALCAS_INTESTINAIS_VISIVEIS_SIM));
		}

		// 105
		if (paciente.getPacienteSintoma().isRhNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.RH_NAO));
		}

		// 106
		if (paciente.getPacienteSintoma().isRhSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.RH_SIM));
		}

		// 107
		if (paciente.getPacienteSintoma().isIntegridadePeleIntegra()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.INTEGRIDADE_DA_PELE_INTEGRA));
		}

		// 108
		if (paciente.getPacienteSintoma().isIntegridadePeleRuptura()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.INTEGRIDADE_DA_PELE_RUPTURA));
		}

		// 109
		if (paciente.getPacienteSintoma().isCaractPeleLisa()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_LISA));
		}

		// 110
		if (paciente.getPacienteSintoma().isCaractPeleBrilhante()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_BRILHANTE));
		}

		// 111
		if (paciente.getPacienteSintoma().isCaractPeleGrosseira()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_GROSSEIRA));
		}

		// 112
		if (paciente.getPacienteSintoma().isCaractPeleDescamacao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_DESCAMACAO));
		}

		// 113
		if (paciente.getPacienteSintoma().isCaractPelePalidez()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_PALIDEZ));
		}

		// 114
		if (paciente.getPacienteSintoma().isCaractPeleIctericia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_ICTERICIA));
		}

		// 115
		if (paciente.getPacienteSintoma().isCaractPelePletora()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_PLETORA));
		}

		// 116
		if (paciente.getPacienteSintoma().isCaractPeleEquimose()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_EQUIMOSE));
		}

		// 117
		if (paciente.getPacienteSintoma().isCaractPeleVernixCaseoso()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_VERNIX_CASEOSO));
		}

		// 118
		if (paciente.getPacienteSintoma().isCaractPeleEscoriacao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_ESCORIACAO));
		}

		// 119
		if (paciente.getPacienteSintoma().isCaractPeleMiliumSebaceo()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_MILIUM_SEBACEO));
		}

		// 120
		if (paciente.getPacienteSintoma().isCaractPeleLanugem()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_LANUGEM));
		}

		// 121
		if (paciente.getPacienteSintoma().isCaractPeleMongolica()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_MANCHA_MONGOLICA));
		}

		// 122
		if (paciente.getPacienteSintoma().isCaractPeleEritemaToxico()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_ERITEMA_TOXICO));
		}

		// 123
		if (paciente.getPacienteSintoma().isCaractPeleHemangioma()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_HEMANGIOMA));
		}

		// 124
		if (paciente.getPacienteSintoma().isCaractPeleEdema()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_EDEMA));
		}

		// 125
		if (paciente.getPacienteSintoma().isCaractPeleFlebite()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_FLEBITE));
		}

		// 126
		if (paciente.getPacienteSintoma().isCaractPeleHiperemia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_HIPEREMIA));
		}

		// 127
		if (paciente.getPacienteSintoma().isCaractPelePetequias()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CARACTERISTICAS_DA_PELE_PETEQUIAS));
		}

		// 128
		if (paciente.getPacienteSintoma().isCotoUmbilicalGelatinoso()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.COTO_UMBILICAL_GELATINOSO));
		}

		// 129
		if (paciente.getPacienteSintoma().isCotoUmbilicalDesidratacao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.COTO_UMBILICAL_DESIDRATACAO));
		}

		// 130
		if (paciente.getPacienteSintoma().isCotoUmbilicalMumificado()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.COTO_UMBILICAL_MUMIFICADO));
		}

		// 131
		if (paciente.getPacienteSintoma().isCicatrizUmbilical()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CICATRIZ_UMBILICAL));
		}

		// 132
		if (paciente.getPacienteSintoma().isHigieneCorporalSatisfatoria()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.HIGIENE_CORPORAL_SATISFATORIA));
		}

		// 133
		if (paciente.getPacienteSintoma().isHigieneCorporalComprometida()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.HIGIENE_CORPORAL_COMPROMETIDA));
		}

		// 134
		if (paciente.getPacienteSintoma().isReflexosMoro()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REFLEXOS_MORO));
		}

		// 135
		if (paciente.getPacienteSintoma().isReflexosPreensaoPalmarPlantar()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REFLEXOS_PREENSAO_PALMAR_E_PLANTAR));
		}

		// 136
		if (paciente.getPacienteSintoma().isAtividadeAtivo()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ATIVIDADE_ATIVO));
		}

		// 137
		if (paciente.getPacienteSintoma().isAtividadeHipoAtivo()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ATIVIDADE_HIPOATIVO));
		}

		// 138
		if (paciente.getPacienteSintoma().isAtividadeReativoManuseio()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ATIVIDADE_REATIVO_AO_MANUSEIO));
		}

		// 139
		if (paciente.getPacienteSintoma().isAtividadeReativoEstimuloDoloroso()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ATIVIDADE_REATIVO_AO_ESTIMULO_DOLOROSO));
		}

		// 140
		if (paciente.getPacienteSintoma().isAtividadeSedado()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ATIVIDADE_SEDADO));
		}

		// 141
		if (paciente.getPacienteSintoma().isMotilidadeMovimentacaoFlexoMembros()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MOTILIDADE_MOVIMENTACAO_E_FLEXAO_DOS_MEMBROS));
		}

		// 142
		if (paciente.getPacienteSintoma().isMotilidadMovimentosBruscos()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MOTILIDADE_MOVIMENTOS_BRUSCOS));
		}

		// 143
		if (paciente.getPacienteSintoma().isMotilidadeHipotonia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MOTILIDADE_HIPOTONIA));
		}

		// 144
		if (paciente.getPacienteSintoma().isMotilidadeTremores()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MOTILIDADE_TREMORES));
		}

		// 145
		if (paciente.getPacienteSintoma().isMotilidadeEspasticidade()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MOTILIDADE_ESPASTICIDADE));
		}

		// 146
		if (paciente.getPacienteSintoma().isMotilidadeHipertonia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MOTILIDADE_HIPERTONIA));
		}

		// 147
		if (paciente.getPacienteSintoma().isExpressaoFacialTranquilo()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.EXPRESSAO_FACIAL_TRANQUILO));
		}

		// 148
		if (paciente.getPacienteSintoma().isExpressaoFacialInquietacao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.EXPRESSAO_FACIAL_INQUIETACAO));
		}

		// 149
		if (paciente.getPacienteSintoma().isExpressaoFacialDor()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.EXPRESSAO_FACIAL_DOR));
		}

		// 150
		if (paciente.getPacienteSintoma().isSonoRepousoSonoIrregural()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SONO_E_REPOUSO_SONO_IRREGULAR));
		}

		// 151
		if (paciente.getPacienteSintoma().isSonoRepousoSonoRegural()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SONO_E_REPOUSO_SONO_REGULAR));
		}

		// 152
		if (paciente.getPacienteSintoma().isSonoRepousoChoro()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SONO_E_REPOUSO_CHORO));
		}

		// 153
		if (paciente.getPacienteSintoma().isSonoRepousoAgitacao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SONO_E_REPOUSO_AGITACAO));
		}

		// 154
		if (paciente.getPacienteSintoma().isSonoRepousoMovimentoDescoordenadoMembros()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SONO_E_REPOUSO_MOVIMENTO_DESCOORDENADO_DOS_MEMBROS));
		}

		// 155
		if (paciente.getPacienteSintoma().isSonoRepousoVigilia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SONO_E_REPOUSO_VIGILIA));
		}

		// 156
		if (paciente.getPacienteSintoma().isReflexoPiscarOlhosEstimuloLuminoso()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REFLEXO_DE_PISCAR_OS_OLHOS_AO_ESTIMULO_LUMINOSO));
		}

		// 157
		if (paciente.getPacienteSintoma().isReageSomAltaFrequencia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REAGE_AO_SOM_DE_ALTA_FREQUENCIA));
		}

		// 158
		if (paciente.getPacienteSintoma().isReageSomBaixaFrequencia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REAGE_AO_SOM_DE_BAIXA_FREQUENCIA));
		}

		// 159
		if (paciente.getPacienteSintoma().isAtividadeMotoraPreservadaManuseio()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ATIVIDADE_MOTORA_PRESERVADA_AO_MANUSEIO));
		}

		// 160
		if (paciente.getPacienteSintoma().isAtividadeMotoraDiminuida()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ATIVIDADE_MOTORA_DIMINUIDA));
		}

		// 161
		if (paciente.getPacienteSintoma().isReflexoBusca()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.REFLEXO_DE_BUSCA));
		}

		// 162
		if (paciente.getPacienteSintoma().isHipertrofiaGrandesLabios()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.HIPERTROFIA_DE_GRANDES_LABIOS));
		}

		// 163
		if (paciente.getPacienteSintoma().isMamasIngurgitadas()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.MAMAS_INGURGITADAS));
		}

		// 164
		if (paciente.getPacienteSintoma().isPseudomestruacao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.PSEUDOMESTRUACAO));
		}

		// 165
		if (paciente.getPacienteSintoma().isEliminacaoIntestinalMeconio()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ELIMINACAO_INTESTINAL_MECONIO));
		}

		// 166
		if (paciente.getPacienteSintoma().isEliminacaoIntestinalFezesDeTransicao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ELIMINACAO_INTESTINAL_FEZES_DE_TRANSICAO));
		}

		// 167
		if (paciente.getPacienteSintoma().isEliminacaoIntestinalFezesLacteas()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ELIMINACAO_INTESTINAL_FEZES_LACTEAS));
		}

		// 168
		if (paciente.getPacienteSintoma().isEliminacaoIntestinalSangue()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ELIMINACAO_INTESTINAL_SANGUE));
		}

		// 169
		if (paciente.getPacienteSintoma().isDiureseNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIURESE_NAO));
		}

		// 170
		if (paciente.getPacienteSintoma().isDiureseSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.DIURESE_SIM));
		}

		// 171
		if (paciente.getPacienteSintoma().isAnusPervioSim()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ANUS_PERVIO_SIM));
		}

		// 172
		if (paciente.getPacienteSintoma().isAnusPervioNao()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ANUS_PERVIO_NAO));
		}

		// 173
		if (paciente.getPacienteSintoma().isEstimulacaoRetal()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.ANUS_PERVIO_ESTIMULACAO_RETAL));
		}

		// 174
		if (paciente.getPacienteSintoma().isOstomiasIleostomia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.OSTOMIAS_ILEOSTOMIA));
		}

		// 175
		if (paciente.getPacienteSintoma().isOstomiasColostomia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.OSTOMIAS_COLOSTOMIA));
		}

		// 176
		if (paciente.getPacienteSintoma().isOstomiasJejunostomia()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.OSTOMIAS_JEJUNOSTOMIA));
		}

		// 177
		if (paciente.getPacienteSintoma().isVinculoMaeFilhoEstabelecido()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.VINCULO_MAE_FILHO_ESTABELECIDO));
		}

		// 178
		if (paciente.getPacienteSintoma().isVinculoMaeFilhoFragil()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.VINCULO_MAE_FILHO_FRAGIL));
		}

		// 179
		if (paciente.getPacienteSintoma().isLigacaoAfeticaIncentivadaToquePais()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.LIGACAO_AFETIVA_INCENTIVADA_ATRAVES_DO_TOQUE_DOS_PAIS));
		}

		// 180
		if (paciente.getPacienteSintoma().isLigacaoAfeticaVisitaPais()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.LIGACAO_AFETIVA_VISITA_DOS_PAIS));
		}

		// 181
		if (paciente.getPacienteSintoma().isExpressaoFacial()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.EXPRESSAO_FACIAL));
		}

		// 182
		if (paciente.getPacienteSintoma().isChoro()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.CHORO));
		}

		// 183
		if (paciente.getPacienteSintoma().isFranzirTesta()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.FRANZIR_DA_TESTA));
		}

		// 184
		if (paciente.getPacienteSintoma().isSorriso()) {
			listaSintomas.add(mapSintomas.get(SintomaConstants.SORRISO));
		}

	}
	
	protected void redirect(String page){  
		  
	    FacesContext ctx = FacesContext.getCurrentInstance();  
	    ExternalContext ec = ctx.getExternalContext();                  
	              
	    try {  
	        ec.redirect(ec.getRequestContextPath() + page);  
	    } catch (IOException ex) {  
	        ex.getMessage();  
	    }  
	  
	}  

	public void imprimeRelatorio(){

		try { 
	        
	        FacesContext.getCurrentInstance().getExternalContext().redirect("/utineonatal/ui/finalizacao.xhtml");

		} catch (Exception e) {
			
			e.printStackTrace();

		}

	}

	// GETTERS AND SETTERS

	public Paciente getNovoPaciente() {
		return novoPaciente;
	}

	public void setNovoPaciente(Paciente novoPaciente) {
		this.novoPaciente = novoPaciente;
	}

	public Paciente getPacientePesq() {
		return pacientePesq;
	}

	public void setPacientePesq(Paciente pacientePesq) {
		
		this.pacientePesq = pacientePesq;
		
	}

	public List<Paciente> getListaPaciente() {
		return listaPaciente;
	}

	public void setListaPaciente(List<Paciente> listaPaciente) {
		this.listaPaciente = listaPaciente;
	}

	public void getPacienteModel() {

		FacesContext facesContext = FacesContext.getCurrentInstance();

		Integer idLeito = (Integer)SessionManager.getSessionAttribute(facesContext, "leito");
		
		if((pacienteLeito == null || pacienteLeito.getNome() == null) && idLeito != null) {

			Leito leito = (Leito) leitoDao.getByID((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), idLeito, new Leito());

			Paciente pacienteAux = leito.getPaciente();

			if(pacienteAux != null){

				novoPaciente = pacienteAux;
				
				if(listaDiagnosticosSelecionados == null || listaDiagnosticosSelecionados.length == 0) {
					listaDiagnosticosSelecionados = novoPaciente.getListaDiagnosticos().toArray(new Diagnostico[novoPaciente.getListaDiagnosticos().size()]);	
				}
				
				if(listaIntervencaoSelecionados == null || listaIntervencaoSelecionados.length == 0) {
					listaIntervencaoSelecionados = novoPaciente.getListaIntervencoes().toArray(new Intervencao[novoPaciente.getListaIntervencoes().size()]);	
				}
					 					 
				isPaginado = false;

			} else {

				if (!isPaginado){
					listaSintomas = new ArrayList<Long>();
					listaDiagnosticosSelecionados = new Diagnostico[0];
					listaIntervencaoSelecionados = new Intervencao[0];
					novoPaciente = new Paciente();
					isPaginado = true;
				}

			}

		} 

	}

	public PacienteDAO getPacienteDao() {
		return pacienteDao;
	}

	public void setPacienteDao(PacienteDAO pacienteDao) {
		this.pacienteDao = pacienteDao;
	}

	public SintomaDAO getSintomaDao() {
		return sintomaDao;
	}

	public void setSintomaDao(SintomaDAO sintomaDao) {
		this.sintomaDao = sintomaDao;
	}

	public Map<String, Long> getMapSintomas() {
		return mapSintomas;
	}

	public void setMapSintomas(Map<String, Long> mapSintomas) {
		this.mapSintomas = mapSintomas;
	}

	public DiagnosticoDAO getDiagnosticoDao() {
		return diagnosticoDao;
	}

	public void setDiagnosticoDao(DiagnosticoDAO diagnosticoDao) {
		this.diagnosticoDao = diagnosticoDao;
	}

	public DiagnosticoDataModel getDiagnosticoModel() {

		FacesContext facesContext = FacesContext.getCurrentInstance();

		if (listaSintomas != null && !listaSintomas.isEmpty()) {

			listaDiagnosticos = diagnosticoDao.listBySintomas((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), listaSintomas);

		} else {
			
			listaDiagnosticos = new ArrayList<Diagnostico>();
			
		}

		diagnosticoModel = new DiagnosticoDataModel(listaDiagnosticos);

		return diagnosticoModel;

	}

	public void setDiagnosticoModel(DiagnosticoDataModel diagnosticoModel) {
		this.diagnosticoModel = diagnosticoModel;
	}

	public List<Diagnostico> getListaDiagnosticos() {
		return listaDiagnosticos;
	}

	public void setListaDiagnosticos(List<Diagnostico> listaDiagnosticos) {
		this.listaDiagnosticos = listaDiagnosticos;
	}

	public List<Long> getListaSintomas() {
		return listaSintomas;
	}

	public void setListaSintomas(List<Long> listaSintomas) {
		this.listaSintomas = listaSintomas;
	}

	public Diagnostico[] getListaDiagnosticosSelecionados() {
		return listaDiagnosticosSelecionados;
	}

	public void setListaDiagnosticosSelecionados(
			Diagnostico[] listaDiagnosticosSelecionados) {
		this.listaDiagnosticosSelecionados = listaDiagnosticosSelecionados;
	}

	public IntervencaoDAO getIntervencaoDao() {
		return intervencaoDao;
	}

	public void setIntervencaoDao(IntervencaoDAO intervencaoDao) {
		this.intervencaoDao = intervencaoDao;
	}

	public IntervencaoDataModel getIntervencaoModel() {

		FacesContext facesContext = FacesContext.getCurrentInstance();

		if (listaDiagnosticosSelecionados != null && listaDiagnosticosSelecionados.length > 0) {

			listaIntervencao = intervencaoDao.listByDiagnosticos((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), listaDiagnosticosSelecionados);

		} else {
			
			listaIntervencao = new ArrayList<Intervencao>();
			
		}

		intervencaoModel = new IntervencaoDataModel(listaIntervencao);

		return intervencaoModel;

	}

	public void setIntervencaoModel(IntervencaoDataModel intervencaoModel) {
		this.intervencaoModel = intervencaoModel;
	}

	public List<Intervencao> getListaIntervencao() {
		return listaIntervencao;
	}

	public void setListaIntervencao(List<Intervencao> listaIntervencao) {
		this.listaIntervencao = listaIntervencao;
	}

	public Intervencao[] getListaIntervencaoSelecionados() {
		return listaIntervencaoSelecionados;
	}

	public void setListaIntervencaoSelecionados(
			Intervencao[] listaIntervencaoSelecionados) {
		this.listaIntervencaoSelecionados = listaIntervencaoSelecionados;
	}

	public List<Sintoma> getListaSintomaEvolucao() {
		return listaSintomaEvolucao;
	}

	public void setListaSintomaEvolucao(List<Sintoma> listaSintomaEvolucao) {
		this.listaSintomaEvolucao = listaSintomaEvolucao;
	}

	public List<Diagnostico> getListaDiagEvolucao() {
		return listaDiagEvolucao;
	}

	public void setListaDiagEvolucao(List<Diagnostico> listaDiagEvolucao) {
		this.listaDiagEvolucao = listaDiagEvolucao;
	}

	public List<Intervencao> getListaIntervencaoEvolucao() {
		return listaIntervencaoEvolucao;
	}

	public void setListaIntervencaoEvolucao(
			List<Intervencao> listaIntervencaoEvolucao) {
		this.listaIntervencaoEvolucao = listaIntervencaoEvolucao;
	}

	public LeitoDAO getLeitoDao() {
		return leitoDao;
	}

	public void setLeitoDao(LeitoDAO leitoDao) {
		this.leitoDao = leitoDao;
	}

	public boolean isPaginado() {
		return isPaginado;
	}

	public void setPaginado(boolean isPaginado) {
		this.isPaginado = isPaginado;
	}

	public ArrayList<Impressao> getImprs() {
		return imprs;
	}

	public void setImprs(ArrayList<Impressao> imprs) {
		this.imprs = imprs;
	}

	public Impressao getImpr() {
		return impr;
	}

	public void setImpr(Impressao impr) {
		this.impr = impr;
	}

	public UsuarioSessao getUsuario() {
		return usuario;
	}

	public void setUsuario(UsuarioSessao usuario) {
		this.usuario = usuario;
	}

	public PacienteDataModel getPacienteDataModel() {

		FacesContext facesContext = FacesContext.getCurrentInstance();

		if(pacientePesq == null || pacientePesq.getNome() == null || "".equals(pacientePesq.getNome().trim())) {

			listaPaciente = pacienteDao.listOrdenado((Session)SessionManager.getSessionAttribute(facesContext, "transacao"));

		} else {

			listaPaciente = pacienteDao.listByDescricao((Session)SessionManager.getSessionAttribute(facesContext, "transacao"), pacientePesq.getNome());

		}

		pacienteDataModel = new PacienteDataModel(listaPaciente);

		return pacienteDataModel;

	}

	public void setPacienteDataModel(PacienteDataModel pacienteDataModel) {
		this.pacienteDataModel = pacienteDataModel;
	}

	public Paciente getPacienteLeito() {
		return pacienteLeito;
	}

	public void setPacienteLeito(Paciente pacienteLeito) {
		this.pacienteLeito = pacienteLeito;
	}

	public Paciente getPacientePesqSelecionado() {
		return pacientePesqSelecionado;
	}

	public void setPacientePesqSelecionado(Paciente pacientePesqSelecionado) {
		
		if (pacientePesqSelecionado != null) {
			
			FacesContext facesContext = FacesContext.getCurrentInstance();

			SessionManager.setSessionAttribute(facesContext, "leito", null);
			
			this.pacienteLeito = null;
		
			this.pacientePesqSelecionado = pacientePesqSelecionado;
			
			this.novoPaciente = pacientePesqSelecionado;
			
			redireciona();
			
		}
		
	}
	
}